package com.alander.nexusgo.post.service;

import com.alander.nexusgo.common.model.dto.PostLikesListDTO;
import com.alander.nexusgo.common.model.vo.PostLikesVO;
import com.alander.nexusgo.post.model.entity.PostLikes;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
* @author alander
*/
public interface PostLikesService extends IService<PostLikes> {
    /**
     * 点赞/取消点赞
     * @param targetId 目标ID(帖子ID或评论ID)
     * @param targetType 目标类型:1-帖子,2-评论
     * @param userId 用户ID
     * @return 操作结果信息
     */
    String like(Long targetId, Integer targetType, Long userId);

    /**
     * 检查是否已点赞
     * @param targetId 目标ID(帖子ID或评论ID)
     * @param targetType 目标类型:1-帖子,2-评论
     * @param userId 用户ID
     * @return 是否已点赞
     */
    boolean checkLike(Long targetId, Integer targetType, Long userId);

    /**
     * 获取点赞详情
     * @param id 点赞ID
     * @return 点赞VO
     */
    PostLikesVO getLikeById(Long id);

    /**
     * 查询点赞列表
     * @param postLikesListDTO 查询条件
     * @return 点赞VO列表
     */
    List<PostLikesVO> listLikes(PostLikesListDTO postLikesListDTO);
}